TAG ARCHIVES: Tech Management
안녕하세요. LINE에서 트랜스코딩(Transcoding) 서버 개발과 운영 업무를 담당하고 있는 백승훈입니다. 1편에서 LINE의 트랜스코딩 서버인 '리코더(Licoder, LIne TransCODER)'를 소개하고 그 기능과 인터페이스에 대해 말씀드렸는데요. 이번 글에서는 리코더의 초기 아키텍처를 설명하고 이 아키텍처가 LINE의 급격한 성장에 따라 어떻게 변화했는지 공유하겠습니다.
초기 리코더의 아키텍처
초기 리코더는 크게 3가지 모듈로 분류했습니다. 사용자의 요청을 받아주는 API 서버와 트랜스코딩을 수행하고 사용자에게 알림(notify)를 전달하는 워커(worker) 서버, 그리고 각 서버 간 메시지 전달과 메시지 큐 역할을 담당하는 RabbitMQ 서버입니다. 아래는 초기 리코더의 아키텍처를 나타낸 그림입니다. 어드민(admin) 서버는 리코더에서 처리한 내용을 일정 기간동안 보관하고, 실패한 요청을 분석할 때
안녕하세요. LINE에서 트랜스코딩(transcoding) 서버 개발과 운영 업무를 담당하고 있는 백승훈입니다. 우리는 생활 속에서 다양한 방식으로 동영상을 생산하고 소비하고 있습니다. 자신의 스마트폰으로 직접 동영상을 촬영하기도 하고, 누군가가 메신저로 공유해 준 동영상을 감상하기도 하고, 인터넷에 공개된 동영상을 다운로드하기도 합니다. 그런데 이렇게 다양한 곳에서 다양한 방식으로 얻은 동영상이 간혹 재생되지 않는 경우가 있습니다. 재생할 수 없는 이유에는 여러 가지가 있을 수 있지만, 대부분 스마트폰의 코덱이나 성능의 제약이 문제가 됩니다. LINE에서는 이런 문제를 어떻게 해결하고 있을까요?
LINE 트랜스코딩 서버에서는 모든 LINE 사용자가 문제없이 동영상을 시청할 수 있도록 가장 범용적인 포맷으로 동영상을 변환하고 있습니다. 또한 더 적은 데이터 요금으로 동영상을 즐길 수 있고, 인터넷
2편에서 소개한 Docker 기반의 통합 테스트를 이용하여 PR 단위 회귀 테스트를 수행할 수 있게 되면서 적은 테스트 비용으로도 안정적으로 서비스를 개발할 수 있게 되었습니다. 하지만 Docker의 기술적 특성 때문에 발생하는 문제들이 있었습니다. 이번 글에서는 Docker의 기술적 특성 때문에 발생했던 여러 문제를 해결하는 과정을 소개하고, 문제를 해결하기 위해 구축했던 인프라 환경을 활용하여 시스템을 추가적으로 개선했던 사례를 소개하고자 합니다.
Docker 적용 후 발생한 문제점과 해결 방법
자동 삭제되는 로그를 보관하고 쉽게 찾아볼 수 있게 만들기
Docker를 활용하니 이전에는 생각하지 못했던 형태의 테스트(PR 단위로 격리되어 구성되는 가상 테스트 환경에서 통합 테스트 수행)가 가능해졌습니다. 그런데 Docker 컨테이너는 종료될 때 컨테이너 내부 데이터가 사라져 버리는 특성이 있었는데요. 이 특성 때문에 로그를 확인할
1편에서는 테스트 자동화를 시작하게 된 계기와 어떤 테스트 자동화 작업을 진행했는지 알아보았습니다. 이번 글에서는 LINE 미디어 플랫폼 조직에서 안정적인 서비스 개발과 운영을 위한 테스트 자동화 환경에 Docker를 활용한 사례를 소개하겠습니다.
대규모 코드 변경 결과 검증하기
1편에서 소개한 테스트 자동화 작업을 실제 업무 환경에 적용한 후, 저를 포함한 팀 내 개발 방식이 변화했고 팀의 전체적인 생산성이 올라갔지만, 기능 단위 또는 API 단위로 발생하는 문제를 탐지할 수 없다는 문제가 아직 남아 있었습니다. 그러던 중 '동일한 국가에 위치한 IDC 간 DR(Disaster Recovery)을 넘어, 서로 다른 국가에 위치한 IDC 간 DR이 가능한 형태의 시스템을 만들고, 필요한 경우 서로 다른 DFS(Distributed File System)를 사용할 수 있도록 개선한다'라는 과제가 부여되었습니다. 플랫폼
안녕하세요. LINE 미디어 플랫폼 개발과 운영 업무를 담당하고 있는 하태호입니다. 미디어 플랫폼은 LINE 메시징 서비스 및 LINE의 다양한 패밀리 서비스에서 생성되고 유통되는 미디어 콘텐츠(이미지, 비디오, 오디오, 라이브 스트림 등)를 각 서비스 요구 사항에 맞추어서 가공하고 저장한 뒤 사용자에게 전달하는 역할을 합니다. 미디어 플랫폼은 LINE 내 수많은 서비스가 사용하는 플랫폼이기 때문에 장애가 발생하면 전체 LINE 서비스 생태계의 품질에 영향을 미칩니다. 따라서 미디어 플랫폼을 구성하는 서버 모듈은 언제나 높은 수준의 서비스 안정성을 보장해야 하는 미션을 가지고 있습니다. 이 미션을 달성하기 위해서 미디어 플랫폼 조직은 코드 리뷰, 테스트 자동화, 기술 스터디, 테크 토크, 장애 회고 등의 다양한 방법을 사용하고 있는데요. 이번 글에서는 미디어 플랫폼 조직이 서비스 안정성을 높이기 위해 어떻게 테스트를&n